﻿using System.Threading.Tasks;

namespace Sidvall.Business
{
    public interface IDataPortal
    {
        Task DeleteItemsAsync(global::Sidvall.Business.IDataPortalContext dataPortalContext);

        Task NewItemAsync(global::Sidvall.Business.IDataPortalContext dataPortalContext);
        Task NewItemsAsync(global::Sidvall.Business.IDataPortalContext dataPortalContext);

        Task GetItemAsync(global::Sidvall.Business.IDataPortalContext dataPortalContext);
        Task GetItemsAsync(global::Sidvall.Business.IDataPortalContext dataPortalContext);

        Task GetItemCountAsync(global::Sidvall.Business.IDataPortalContext dataPortalContext);

        Task SaveItemAsync(global::Sidvall.Business.IDataPortalContext dataPortalContext);
        Task SaveItemsAsync(global::Sidvall.Business.IDataPortalContext dataPortalContext);

        Task UpdateItemAsync(global::Sidvall.Business.IDataPortalContext dataPortalContext);
        Task UpdateItemsAsync(global::Sidvall.Business.IDataPortalContext dataPortalContext);

        Task ExecuteAsync(global::Sidvall.Business.DataPortalContext<global::Sidvall.Data.CommandCriteria, global::Sidvall.Data.CommandCriteria> dataPortalContext);
    }
}
